1. Field of the Invention
The present invention relates to natural language understanding and dialog management systems, and more particularly to a method and system for predicting the users next command for these systems.
2. Description of the Related Art
State-of-the-art natural language dialog systems typically attempt to translate the users input to a formal command by treating each input as an isolated input, without considering the prior history of interaction, without using the knowledge of a given user""s standard working habits, and without considering the input device and modality used to access the system. Incorrect responses of a dialog system may be rooted in incorrect contextual understanding of the command provided by a user.
Therefore a need exists for a system and method which takes advantage of a user""s exhibited regularities in their interaction with a given system. A further need exists for a system and method which employs the knowledge of a user""s regularities to improve the accuracy of the natural language understanding, and to permit the system to take initiative in suggesting the next possible input, thus saving the user additional effort. A still further need exists for a system and method for predicting the next set of commands which will be given by a user in a natural language dialog system.
A command prediction system for natural language understanding systems, in accordance with the present invention, includes a user interface for receiving commands from a user. A command predictor receives the commands from the user interface and predicts at least one next command which is likely to be presented by the user based on a command history. A probability calculator is included in the command predictor for determining a probability for each of the at least one next command based on the command history such that a list of predicted commands and their likelihood of being a next command are provided.
In alternate embodiments, a natural language engine may be coupled to the user interface for converting commands from the user to formal language commands. The natural language engine may employ the list of predicted commands to weight the commands to provide a most likely next command for execution. A dialog manager may be coupled to the command predictor for prompting a user for a response based on a most probable next command from the list of predicted commands. The user interface may be adapted to receive an access method of the user, and the command predictor may include a prediction model for storing frequencies of issued command sequences and the access method to predicting the at least one next command. The prediction model may include a personal prediction model which is constructed for a given user based on previously issued commands and access methods. The command history preferably stores at least two commands previously issued in one of a same session and a predetermined time interval.
A command prediction system includes a natural language understanding engine coupled to a user interface for receiving commands from a user and converting the commands to formal language commands. A command predictor is included for receiving the formal language commands from the natural language engine and for predicting at least one next command which is likely to be presented by the user. A dialog manager is coupled to the command predictor and the user interface for prompting user action responsive to the predicted at least one next command.
The command predictor preferably includes a command history for storing commands employed by the user. The command predictor may include a prediction model which stores frequencies of command sequences and access methods associated with the command sequences used to predict the at least one next command. The command predictor may include a probability calculator coupled to the command history and the prediction model. The probability calculator may determine a list of predicted commands and associated probabilities of a likelihood of being the next command based on input from the command history and the prediction model. The prediction model may include a personal prediction model for a given user, and the personal prediction model may be constructed from a personal training corpus and based on a command history of the given user.
A method for predicting a next command in a natural language understanding system includes the steps of receiving commands from a user by employing a user interface, receiving the commands from the user interface at a command predictor, the command predictor predicting at least one next command which is likely to be presented by the user based on a command history and determining a probability for each of the at least one next command based on the command history such that a list of predicted commands and their likelihood of being a next command are provided.
In other methods, the step of converting commands from the user to formal language commands by employing a natural language engine may be included. The step of weighting the list of predicted commands to provide a most likely next command for execution may be included. The step of prompting a user for a response based on a most probable next command from the list of predicted commands by employing a dialog manager may be included. The command predictor may include a prediction model and the method may include the step of receiving an access method of the user such that the prediction model employs frequencies of issued command sequences and the access method for predicting the at least one next command. The prediction model may include a personal prediction model and the method may include the step of constructing the personal prediction model for a given user based on previously issued commands and access methods. The methods set forth may be implemented by employing a program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform the method steps for predicting a next command in a natural language understanding system.